With the advent of the computer age, computer and software users have grown accustomed to user-friendly software applications that help them write, calculate, organize, prepare presentations, send and receive electronic mail, make music, and the like. Modem word processing applications, for example, allow users to create and edit a variety of useful documents. Modem project management applications, as another example, allow users to create project management schedules for organizing and managing tasks, resources and labor associated with a variety of projects.
Manual and computerized project management systems allow managers and planners to organize and plan the tasks, resources and schedules required for completion of a given project. In most projects, a number of dependencies and constraints dictate the timing and completion of an overall project and of sub-projects comprising the overall project. For example, in a house construction project, a drywall sub-project may not typically begin until the completion of electrical work. And, a number of sub-projects may be constrained by the availability of labor and resources. Project management software applications have been developed for creating and automating project management schedules. With many such systems, tasks or sub-projects comprising an overall project are set out in scheduling charts, such as Gantt Charts, showing start dates and finish dates for given milestones and associated tasks comprising the overall project and providing information regarding utilized resources and constraints associated with the milestones and tasks comprising the project.
Currently, some project management software applications utilize a client/server architecture to manage projects. In many if these applications, the server is used to store the majority of project related data. That is, most of the project data is maintained on the server, allowing access by multiple users. In some cases the size of the data on the server can be very large. Typically, all of the data is sent to or pulled from the server when a user saves or loads a project. These issues tend to be a major problem when attempting to save or retrieve large amounts of data to and from the server. Load and latency issues may be exacerbated when a number of clients connect to the server and attempt save and load operations. Moreover, it can be quite cumbersome when attempting to load/save large amounts of data from the server, resulting in lost efficiency and increased costs. The performance problems can be particularly acute when the client is connected to the server over a low-bandwidth WAN connection.